package cn.iocoder.yudao.module.product.property.dal.mysql;

import cn.iocoder.yudao.framework.business.basic.dao.mapper.CoreMapper;
import cn.iocoder.yudao.framework.business.basic.dao.query.CoreLambdaQueryWrapper;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.product.property.dal.dataobject.ProductPropertyDO;
import cn.iocoder.yudao.module.product.property.vo.ProductPropertyPageReqVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface ProductPropertyMapper extends CoreMapper<ProductPropertyDO> {

    default PageResult<ProductPropertyDO> selectPage(ProductPropertyPageReqVO reqVO) {
        return selectPage(reqVO, new CoreLambdaQueryWrapper<ProductPropertyDO>()
                .likeIfPresent(ProductPropertyDO::getName, reqVO.getName())
                .betweenIfPresent(ProductPropertyDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(ProductPropertyDO::getId));
    }

    default List<ProductPropertyDO> selectListByShopId(Long shopId) {
        return selectList(new CoreLambdaQueryWrapper<ProductPropertyDO>()
                .eq(ProductPropertyDO::getShopId, shopId));
    }

    default ProductPropertyDO selectByShopIdAndName(Long shopId, String name) {
        return selectOne(new CoreLambdaQueryWrapper<ProductPropertyDO>()
                .eq(ProductPropertyDO::getShopId, shopId)
                .eq(ProductPropertyDO::getName, name));
    }

}
